package com.why.zing.payapi.model;

import lombok.Data;

import java.math.BigDecimal;

/**
 * 当面付回调接口信息
 */
@Data
public class AliPayCallBackRequest {

    /**
     * 通知的发送时间。格式为yyyy-MM-dd HH:mm:ss
     */
    private String notify_time;

    /**
     * 通知的类型
     */
    private String notify_type;

    /**
     * 通知校验 ID
     */
    private String notify_id;

    /**
     * 商户生成签名字符串所使用的签名算法类型，目前支持RSA2和RSA，推荐使用RSA2（如果开发者手动验签，不使用 SDK 验签，可以不传此参数）
     */
    private  String sign_type;

    /**
     * 请参考异步返回结果的验签（如果开发者手动验签，不使用 SDK 验签，可以不传此参数）
     */
    private String sign;

    /**
     * 支付宝交易凭证号
     */
    private String trade_no;

    /**
     * 开发者的app_id
     */
    private String app_id;

    /**
     * 原支付请求的商户订单号
     */
    private String out_trade_no;

    /**
     * 商户业务ID，主要是退款通知中返回退款申请的流水号
     */
    private String out_biz_no;

    /**
     * 买家支付宝账号对应的支付宝唯一用户号。以 2088 开头的纯 16 位数字
     */
    private String buyer_id;

    /**
     * 买家支付宝账号
     */
    private String buyer_logon_id;

    /**
     * 卖家支付宝用户号
     */
    private String seller_id;

    /**
     * 卖家支付宝账号
     */
    private String seller_email;

    /**
     * 交易目前所处的状态
     *
     * WAIT_BUYER_PAY  交易创建，等待买家付款
     *
     * TRADE_CLOSED  未付款交易超时关闭，或支付完成后全额退款
     *
     * TRADE_SUCCESS   交易支付成功
     *
     * TRADE_FINISHED  交易结束，不可退款
     */
    private String trade_status;

    /**
     * 本次交易支付的订单金额，单位为人民币（元）
     */
    private BigDecimal total_amount;

    /**
     * 实收金额
     */
    private BigDecimal receipt_amount;

    /**
     * 开票金额
     */
    private BigDecimal invoice_amount;


    /**
     * 用户在交易中支付的金额
     */
    private BigDecimal buyer_pay_amount;

    /**
     * 退款通知中，返回总退款金额，单位为元，支持两位小数
     */
    private String refund_fee;

    /**
     * 商户实际退款给用户的金额，单位为元，支持两位小数
     */
    private String send_back_fee;


    /**
     * 订单标题
     */
    private String subject;


    /**
     * 订单标题
     */
    private String body;

    /**
     * 交易创建时间
     */
    private String gmt_create;


    /**
     * 该笔交易的买家付款时间。格式为yyyy-MM-dd HH:mm:ss
     */
    private String gmt_payment;

    /**
     * 该笔交易的退款时间。格式为yyyy-MM-dd HH:mm:ss.S
     */
    private String gmt_refund;

    /**
     * 该笔交易结束时间。格式为yyyy-MM-dd HH:mm:ss
     */
    private String gmt_close;


    /**
     * 支付金额信息
     */
    private String fund_bill_list;

    /**
     * 编辑
     */
    private String charset;

    /**
     * 版本
     */
    private String version;


    private String auth_app_id;
}
